'''
@Author: shj
@Date: 2020-05-30 22:25:28
@LastEditTime: 2020-05-30 23:19:58
@LastEditors: shj
@Description:  替换字符串中的空格
@FilePath: /python3/algorithms/offer_code/replace_blank_string.py
'''
'''
题目描述：
请实现一个函数，将一个字符串中的每个空格替换成“%20”。例如，当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
'''
'''
解题思路：（逆向遍历） 代码
先判空
具体过程如图所示： （未使用）
length为原字符串最后一个字符的位置，new_lngth为结果字符串的最后一个位置
if str[length] == ' ':
    replace ' ' with %20
else:
    go on
'''


class Solution(object):
    def replaceSpace(self, s):
        '''
        用%20替换空字格 " "
        :param s: 源字符串
        '''
        try:
            length = len(s)  # 字符串长度
        # 处理NoneType异常
        except TypeError:
            length = 0
        # 判空
        if length == 0:
            return ''
        else:  # 替换
            return s.replace(' ', '%20')


# string = 'We Are Happy.'
string = None
sl = Solution()
string = sl.replaceSpace(string)
print(string)